<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>对象</title>
</head>
<body>
    <script>
    //对象 
    //     var person = {
    //     name: 'fyr',
    //     age: 18,
    //     sex: '女',
    //     fav: function(){
    //         alert('喜欢羊儿')
    //     }
    // }
    // console.log(person.name,person.fav())

    //  常用内置对象及对象方法
    // Array 方法
    // 1.构造函数
    // var animals = new Array();
    // if(Array.isArray(animals)){
    //     animals[0] = 'dog';
    //     animals[1] = 'cat';
    //     console.log(animals);
    //     console.log(animals[1]);
    //     console.log(animals.length);
    //     var animal_str = animals.toString();//转字符串函数
    //     console.log(animal_str)
    // }else{
    //     alert('Not Array')
    // }

    // 数组常用方法：
    // jion 方法分割字符串
    // var arr = [1,2,3,4,5];
    // var str_arr = arr.toString()
    // var str1_arr = arr.toLocaleString()
    // var animals = ['dog','cat'];
    // var str_join = animals.join('|')
    // alert(str_join)

    // 栈方法(lifo last-in-first-out 后进先出)
    // push 和 pop 方法
    // var animals = ['dog','cat'];
    // var new_animals = animals.push('pig') //push类似与py的append
    // var a = animals.pop();  // 类似与py的pop 弹出一个元素 并返回这个元素
    // alert(a);
    // alert(animals.toString())

    // 队列方法（fifo first-in-first-out 先进先出)
    //shift 和 unshift 方法 和push，pop相对应
    // var animals = ['dog','cat'];
    // var b = animals.unshift('pig')//返回新数组长度值
    // console.log(b);
    // var a = animals.shift();
    // console.log(a)
    // console.log(animals);

    //数组排序：
    // var values = [1,41,16,12,35,87,49];
    // values.reverse(); // 将数组颠倒
    // values.sort();  //排序，默认为从小到大，比较的值为ASCII码
    // function compare(a,b){
    //     return a-b;
    // }
    // function compare2(a,b){
    //     return b-a;
    // }
    // values.sort(compare);
    // alert(values)
    // values.sort(compare2);
    // alert(values)

    //数组合并
    //concat 合并
    // var arr = [1,2,3,4]
    // var new_arr = arr.concat(5,"fyr",{name:'fyr'},[0,0,0]);//会返回一个新的数组,可添加的值为数值,字符串,数组,但会自行合并数组。
    // alert(new_arr)

    //slice 切割数组
    // var arr = [1,2,3,4]
    // //从1的索引开始切割，返回新数组为之后的所有内容，两个参数就是左开右闭的区间。
    // var new_arr = arr.slice(1,2); 
    // alert(new_arr)

    //splice 删除 插入 替换
    // splice(起始位置索引,删除个数,插入的元素)
    // var arr = [1,2,3,4]
    // arr.splice(1,2)// 删除---不会返回新数组
    // alert(arr)
    // arr.splice(1,0,8);
    // alert(arr)

    //位置方法 indexOf() lastIndexOf()
    // var arr = [1,2,3,1,4]
    // alert(arr.indexOf(1)) //返回0
    // alert(arr.lastIndexOf(1))//返回3
    // alert(arr.indexOf(1,2))//表示从第二个索引位置开始查找,返回3，last同理
    //查不到结果  返回-1

    //数组的迭代方法：
    
    //filter过滤  
    // var arr = [1,2,3,4,5,18,11,55,101]
    // var new_arr = arr.filter(function(item,index,array){
    //     return item > 10 && item < 50
    // })
    // alert(new_arr)

    //map  映射
    // var arr = [1,2,3,4,5,18,11,55,101]
    // var new_arr = arr.map(function(item,index,array){
    //     return item*2-1
    // })
    // alert(new_arr)

    //forEach 遍历
    // var arr = [1,2,3,4,5,18,11,55,101]
    // var new_arr = arr.forEach(function(item,index,array){
    //     console.log(item)
    // })
    
    //字符串常用方法
    //属性 length
    // var str = 'Hello World';
    // var str1 = '  Hello World  '
    // console.log(str.length)//11
   
    // charAt()---获取指定字符，参数为索引值
    // console.log(str.charAt(1)); //输出e
   
    // charCodeAt()---获取指定字符的ASCII码
    // console.log(str.charCodeAt(1));//输出101

    // concat 拼接字符串,和+一样,一般不适用此方法拼接。
    // var new2_str = str.concat(' Sb')
    // var new1_str = str + ' SB';
    // console.log(new1_str,new2_str)

    // slice(),substr(),substring()
    // console.log(str.slice(2))//输出llo world
    // console.log(str.substring(2,6))//输出llo  返回2-6的字符，不包含6
    // console.log(str.substr(2,6))//输出llo wo 从2开始 返回6个

    // indexOf  lastIndexOf
    // console.log(str.indexOf('o'))//返回4，对应索引，lastindexof为反向查找，会返回7
    // console.log(str.indexOf('o',6))//从第6个开始找，返回7

    // trim 清楚字符串前后空格，不影响字符之间的空格
    // console.log(str1.trim())//返回Hello World

    // toLowCase()-转小写 toUpperCase()-转大写
    // console.log(str.toUpperCase())// HELLOWORLD
    // console.log(str.toLowerCase())//hello world

    //Date 日期对象
    // var now = new Date('December 25, 1995 13:30:00');
    // var now = new Date(1995,11,25,13,40,50);//年月日时分秒
    // console.log(now)
    //常用方法
    // var now = new Date();
    // console.log(now.getDate());//获取当前月份的第几天（1-31）
    // console.log(now.getMonth());//获取当前月份（0-11）
    // console.log(now.getFullYear());//获取当前年份
    // console.log(now.getDay());//获取当前星期 0表示星期天（0-6）
    // console.log(now.getHours());//获取小时（0-23）
    // console.log(now.getMinutes());//获取分钟 0-59
    // console.log(now.getSeconds());//获取秒 0-59

    //2020-05-21 显示方式(日期格式化方法)
    alert(now.toDateString())  //Thu Nov 19 2020
    alert(now.toTimeString())    //10:02:25 GMT+0800 (中国标准时间)
    alert(now.toLocaleDateString())  //2020/11/19
    alert(now.toLocaleTimeString())  //上午10:04:23
    alert(now.toLocaleString())  //2020/11/19 上午10:04:45
    alert(now.toUTCString()) //Thu, 19 Nov 2020 02:05:24 GMT

    //字符串和数值相互转换。
    var str = '3.1415926'
    parseInt//转换整形,从头取数字，碰到非数字 停止解析。
    parseFloat //转换浮点型
    alert(parseFloat(str))
    //强制类型转换,不能有字母。否则返回NaN
    alert(Number(str))
    toString //转字符串
    num.toFixed()//四舍五入，参数为保留的位数

    //Math对象
    // Math.E //e的值
    // Math.LN10 //lg10
    // Math.PI// Π
    // Math.SQRT2//2的平方根

    // min()和max()方法
    var arr = [1,3,52,6,3,58,88]
    Math.max.apply(null,arr)//求数组的最大值
    Math.ceil(24.1)//输出25  天花板函数
    Math.floor(24.9)//输出24  地板函数
    Math.round(24.5)//25  标准的四舍五入.
    Math.random()//返回一个[0,1)的随机数





    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    </script>
</body>
</html>